﻿// (c) Norbert Huffschmid
// This source is subject to the Microsoft Public License (Ms-PL).
// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details.

using NProtocol.Codec;
using NProtocol;

namespace ShoutBox.Core
{
    /// <summary>
    /// Interface for outgoing platform-related audio functions
    /// </summary>
    public interface IPlatformAdapterAudioOut : IPlatformAdapter
    {
        /// <summary>
        /// Play PCM audio data
        /// </summary>
        /// <param name="pcmData">PCM audio data (8kHz-16bit-mono encoded)</param>
        void PlayPcmData(byte[] pcmData);

        /// <summary>
        /// Save current volume level for later restoring
        /// </summary>
        void SaveVolumeLevel();

        /// <summary>
        /// Restore previously saved volume level
        /// </summary>
        void RestoreVolumeLevel();

        /// <summary>
        /// Set volume level
        /// </summary>
        /// <param name="volume">Volume level</param>
        void SetVolumeLevel(double volume);
    }
}
